﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace XDUD_QuanLyBanHang
{
    public partial class frmQuanLyDanhMucKhachHang : Form
    {
        public frmQuanLyDanhMucKhachHang()
        {
            InitializeComponent();
        }
        //chuoi ket noi
        string strConnectionString = "Data Source=VUHOANG-PC\\SQLEXPRESS;Initial Catalog=QuanLyBanHang;Integrated Security=True";
       
        //doi tuong ket noi
        SqlConnection conn = null;
        //dua du lieu vao datatable dtKhachHang
        SqlDataAdapter daKhachHang = null;
        //dua du lieu hien thi len form
        DataTable dtKhachHang = null;
        //dua du lieu vao datatable dtThanhPho
        SqlDataAdapter daThanhPho = null;
        //dua du lieu len form
        DataTable dtThanhPho = null;
        //Kiem tra them hay sua du lieu
        bool Them;
        private void frmQuanLyDanhMucKhachHang_Load(object sender, EventArgs e)
        {
            ReLoad();
            panel.Enabled = false;
            btnLuu.Enabled = false;
            btnHuy.Enabled = false;
            btnThem.Enabled = true;
            btnXoa.Enabled = true;
            btnSua.Enabled = true;
            btnTroVe.Enabled = true;
        }
        void ReLoad()
        {
            try
            {
                //khoi dong connection
                conn = new SqlConnection(strConnectionString);
                //chuyen du lieu len datatable dtThanhPho
                daThanhPho = new SqlDataAdapter("select* from thanhpho", conn);
                dtThanhPho = new DataTable();
                dtThanhPho.Clear();
                daThanhPho.Fill(dtThanhPho);
                //chuyen du lieu len combobox
                (dgvKhachHang.Columns["ThanhPho"] as DataGridViewComboBoxColumn).DataSource = dtThanhPho;
                (dgvKhachHang.Columns["ThanhPho"] as DataGridViewComboBoxColumn).DisplayMember = "TenThanhPho";
                (dgvKhachHang.Columns["ThanhPho"] as DataGridViewComboBoxColumn).ValueMember = "ThanhPho";
                //chuyen du lieu len datatable dtKhachHang
                daKhachHang = new SqlDataAdapter("select* from khachhang", conn);
                dtKhachHang = new DataTable();
                dtKhachHang.Clear();
                daKhachHang.Fill(dtKhachHang);
                dgvKhachHang.DataSource = dtKhachHang;
            }
            catch (SqlException)
            {
                MessageBox.Show("Không lấy được nội dung trong table KHACHHANG", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnReLoad_Click(object sender, EventArgs e)
        {
            //load lai form
            ReLoad();
            //xoa trang cac TextBox trong panel
            txtMaKH.ResetText();
            txtTenCty.ResetText();
            txtDiaChi.ResetText();
            txtDienThoai.ResetText();
            cbThanhPho.ResetText();
            //Tat cac nut Luu, Huy va panel
            panel.Enabled = false;
            btnLuu.Enabled = false;
            btnHuy.Enabled = false;
            // Bat cac nut Them, Xoa, Sua, Thoat
            btnThem.Enabled = true;
            btnXoa.Enabled = true;
            btnSua.Enabled = true;
            btnTroVe.Enabled = true;
         
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            // Mở kết nối
            conn.Open();
            try
            {
                DialogResult traloi = MessageBox.Show("Bạn có chắc chắn xóa!", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (traloi == DialogResult.OK)
                {
                    // Thực hiện lệnh
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    // Lấy thứ tự record hiện hành
                    int r = dgvKhachHang.CurrentCell.RowIndex;
                    // Lấy MaKH của record hiện hành
                    string strMAKH =
                    dgvKhachHang.Rows[r].Cells[0].Value.ToString();
                    // Viết câu lệnh SQL
                    cmd.CommandText = System.String.Concat("Delete From KhachHang Where MaKH='" + strMAKH + "'");
                    cmd.CommandType = CommandType.Text;
                    // Thực hiện câu lệnh SQL 
                    cmd.ExecuteNonQuery();
                    // Cập nhật lại DataGridView
                    ReLoad();
                    // Thông báo
                    MessageBox.Show("Đã xóa xong!");
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("Không xóa được. Lỗi rồi!!!");
            }
            // Đóng kết nối
            conn.Close();
        
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            Them = true;
            //Bat panel
            panel.Enabled = true;
            //Xoa trang cac TextBox
            txtMaKH.ResetText();
            txtTenCty.ResetText();
            txtDiaChi.ResetText();
            txtDienThoai.ResetText();
            txtMaKH.Focus();
            //Do du lieu Thanh Pho vao Combobox
            this.cbThanhPho.DataSource = dtThanhPho;
            this.cbThanhPho.DisplayMember = "TenThanhPho";
            this.cbThanhPho.ValueMember = "ThanhPho";
            //Tat cac nut Sua, Them, Xoa, Thoat
            btnSua.Enabled = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;
            btnTroVe.Enabled = false;
            //Bat nut Luu, Huy
            btnLuu.Enabled = true;
            btnHuy.Enabled = true;
        
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            Them = false;
            //Bat panel
            panel.Enabled = true;
            // Đưa dữ liệu lên ComboBox
            this.cbThanhPho.DataSource = dtThanhPho;
            this.cbThanhPho.DisplayMember = "TenThanhPho";
            this.cbThanhPho.ValueMember = "ThanhPho";
            // Thứ tự dòng hiện hành
            int r = dgvKhachHang.CurrentCell.RowIndex;
            // Chuyển thông tin lên panel
            this.txtMaKH.Text =
            dgvKhachHang.Rows[r].Cells[0].Value.ToString();
            this.txtTenCty.Text =
            dgvKhachHang.Rows[r].Cells[1].Value.ToString();
            this.txtDiaChi.Text =
            dgvKhachHang.Rows[r].Cells[2].Value.ToString();
            this.cbThanhPho.SelectedValue =
            dgvKhachHang.Rows[r].Cells[3].Value.ToString();
            this.txtDienThoai.Text =
            dgvKhachHang.Rows[r].Cells[4].Value.ToString();
            //Tat cac nut Sua, Them, Xoa, Thoat
            btnSua.Enabled = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;
            btnTroVe.Enabled = false;
            //Bat nut Luu, Huy
            btnLuu.Enabled = true;
            btnHuy.Enabled = true;
        
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            //Reload
            ReLoad();
            //Tat panel
            panel.Enabled = false;
            //Tat cac nut Luu, Huy
            btnLuu.Enabled = false;
            btnHuy.Enabled = false;
            //Bat cac nut Them, Sua, Xoa, Thoat
            btnThem.Enabled = true;
            btnXoa.Enabled = true;
            btnSua.Enabled = true;
            btnTroVe.Enabled = true;
            //Xoa trang cac truong trong panel
            txtMaKH.ResetText();
            txtTenCty.ResetText();
            txtDiaChi.ResetText();
            txtDienThoai.ResetText();
            cbThanhPho.ResetText();
        
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            // Mở kết nối
            conn.Open();
            // Thêm dữ liệu
            if (Them)
            {
                try
                {
                    // Thực hiện lệnh
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    // Lệnh Insert InTo
                    cmd.CommandText = System.String.Concat("Insert Into KhachHang Values(" + "'" +
                    this.txtMaKH.Text.ToString() + "','" +
                    this.txtTenCty.Text.ToString() + "','" +
                    this.txtDiaChi.Text.ToString() + "','" +
                    this.cbThanhPho.SelectedValue.ToString() +
                    "','" + this.txtDienThoai.Text.ToString() +
                    "')");
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();
                    // Load lại dữ liệu trên DataGridView
                    ReLoad();
                    // Thông báo
                    MessageBox.Show("Đã thêm xong!");
                }
                catch (SqlException)
                {
                    MessageBox.Show("Không thêm được. Lỗi rồi!");
                }
            }
            if (!Them)
            {
                try
                {
                    // Thực hiện lệnh
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    // Thứ tự dòng hiện hành
                    int r = dgvKhachHang.CurrentCell.RowIndex;
                    // MaKH hiện hành
                    string strMAKH =
                    dgvKhachHang.Rows[r].Cells[0].Value.ToString();
                    // Câu lệnh SQL
                    cmd.CommandText = System.String.Concat("Update KhachHang Set TenCty='" +
                    this.txtTenCty.Text.ToString() + "', DiaChi='"
                    + this.txtDiaChi.Text.ToString() + "', ThanhPho='" +
                    this.cbThanhPho.SelectedValue.ToString() + "', DienThoai='"
                    + this.txtDienThoai.Text.ToString() + "' Where MaKH='" + strMAKH + "'");
                    // Cập nhật
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();
                    // Load lại dữ liệu trên DataGridView 
                    ReLoad();
                    // Thông báo
                    MessageBox.Show("Đã sửa xong!");
                }
                catch (SqlException)
                {
                    MessageBox.Show("Không sửa được. Lỗi rồi!");
                }
            }
            // Đóng kết nối
            conn.Close();
        
        }
        
    }
}
